﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using memoria_partilhada = BD2_5479_5513.SharedMemory;
using dbocontrol = BD2_5479_5513.DatabaseControl;
using formaluno = BD2_5479_5513.FormAluno;
using formprofessor = BD2_5479_5513.FormDocente;
using formcoordenador = BD2_5479_5513.FormCoordenador;

namespace BD2_5479_5513
{
    public partial class FormAutenticacao : Form
    {
        public FormAutenticacao()
        {
            InitializeComponent();
        }

        public static void ThreadProcAluno()
        {
            Application.Run(new formaluno());
        }

        public static void ThreadProcProfessor()
        {
            Application.Run(new formprofessor());
        }

        public static void ThreadProcCoordenador()
        {
            Application.Run(new formcoordenador());
        }

        public void JanelaMensagem(string utilizador, string tipo)
        {
            string a = string.Format("Autenticado como {0}.\n Tipo de utilizador: {1}", utilizador, tipo);
            string b = "Bem vindo ao sistema de gestão de momentos de avaliação";
            MessageBox.Show(a, b);
        }

        private void button_Limpar_login_Click(object sender, EventArgs e)
        {
            textBox_password.Text = "";
            textBox_utilizador.Text = "";
        }

        private void button_autenticar_Click(object sender, EventArgs e)
        {
            var utilizador = textBox_utilizador.Text;
            var password = textBox_password.Text;

            dbocontrol teste = new dbocontrol();
            memoria_partilhada mem = new memoria_partilhada();
            var tipo_utilizador = teste.getTipoUtilizador(utilizador, password);

            /*
             * Abre a janela com as operações relativas a cada tipo de utilizador
             */ 
            if (tipo_utilizador == 0)
            {
                //abrir form do aluno
                mem.mensagem = "Bem vindo ao sistema de gestão de momentos de avaliação";
                System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadProcAluno));
                t.Start();
                this.Close();
            }

            else if (tipo_utilizador == 1)
            {
                //abrir form do professor
                mem.mensagem = "Bem vindo ao sistema de gestão de momentos de avaliação";
                System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadProcProfessor));
                t.Start();
                this.Close();
            }

            else if (tipo_utilizador == 2)
            {
                //abrir form do coordenador
                mem.mensagem = "Bem vindo ao sistema de gestão de momentos de avaliação";
                System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadProcCoordenador));
                t.Start();
                this.Close();
            }

            else if (tipo_utilizador == 100)
            {
                MessageBox.Show("Erro ao aceder à base de dados", "Erro de autenticação");        
            }

            else if (tipo_utilizador == 99)
            {
                MessageBox.Show("Password errada", "Erro de autenticação");
            }

            else if (tipo_utilizador == 98)
            {
                MessageBox.Show("Nome de utilizador não existe", "Erro de autenticação");
            }

        }
    }
}
